"Les cours de neeko.fr"

Retour en haut

HTML - CSS : mise en page

HTML - CSS : Mise en page

Le principe

Le Box-Model

Avec le HTML et le CSS, tous les éléments affichés suivent le "Box-Model".

Pour résumer, la largeur réelle d'une boite est de :
width + padding + border + margin.

Margin et padding

Lorsque qu'on défini les marges et les paddings, on peut le faire de plusieurs manière :

Le flux

Il existe 3 grands types de boites : inline, block et none. Il est possible de modifier le type d'une boite avec la propriété display .

Boite de type "inline"

  • hauteur : adaptée au contenu.
  • largeur : adaptée au contenu.
  • pas de margin modifiable.
  • pas de width ni de height modifiables.
  • se comporte comme du texte.

Boite de type "block"

  • hauteur : adaptée au contenu.
  • largeur : 100% de son parent.
  • margin, width et height peuvent être modifiés.
  • saute une ligne avant et après.

Positionement

Par defaut, il est impossible de controller directement le positionement d'une boite.

Pour le faire, il faut utiliser une des propriété position : absolute, relative, fixed ou static.

Position: static

  • C'est la position standard. Ne pas définir de position revient à lui donner celle ci.

Position: absolute

  • Permet d'utiliser les propriétés top, left, right ou bottom par rapport au document.
  • Même si on ne déplace pas la boite, elle sort du flux.
  • Sur chaque axe, si on ne déplace pas la boite, elle reste à la position que le flux lui a donné.
  • Une boite de type block devient aussi petit que possible, par rapport à son contenu, sauf si on utilise la propriété width

Position: relative

  • Permet d'utiliser les propriétés top, left, right ou bottom par rapport à sa position initiale.
  • La boite laisse un "trou" a son emplacement initial dans le flux.
  • Sur chaque axe, si on ne déplace pas la boite, elle reste à la position que le flux lui a donné.
  • La boite ne change pas de largeur automatiquement.
  • Une boite en positon relative sans utiliser les déplacements ne représente aucun changement visuel.

Position: fixed

  • Exactement comme position:absolute, mais ne prends pas en compte le scroll.

Position: absolute avec un parent en Position: relative

  • Comme la position absolute, sauf que le placement est par rapport au parent qui est en position relative.

Les floats

Les floats sont un cas particulier du flux standard. Selon si un ou plusieurs élements "flottent", le comportement ne sera pas le même.

Sans float

float simple

float colonnes

Controller le float

Attention, un élément qui flotte devient ignoré par son parent, ce qui peut poser des problèmes de calcul de hauteur.

Lorsqu'on utile un float, on utilise presque systèmatiquement une propriété pour le controller : overflow, clear ou height.

Avec clear

Utiliser clear:left pour controller un float:left, clear:right pour controller un float:right, ou clear:both pour controller les 2 en même temps.

Avec overflow

Utiliser overflow:auto sur le parent direct pour de meilleurs résultats.

Les Medias Query

CSS 2

En CSS 2, il était seulement possible d'associer des styles pour différents médias :

Soit directement dans la balise link :

<head> ... <link rel="stylesheet" href="principale.css" /> <link rel="stylesheet" href="screen.css" media="screen" /> <link rel="stylesheet" href="print.css" media="print" /> ... </head>

Ou dans la feuille de style, pour certaines déclarations :

body { background: black; color: white; } @media print { body { background: white; color: black; } }

CSS 3

Depuis CSS 3, les medias queries ont gagné en puissance et en souplesse.

Il est maintenant possible d'appliquer certaines déclarations CSS à condition que la taille de l'écran soit suffisante, par exemple.

Ces paramètres doivent être composés à l'aide de and, de or et de not

Quelques propriétés :

Exemple complet

.page { width: 80%; margin: 10%; } .article { float:left; width: 45%; } @media screen and (max-width: 800px) { .page { width: 100%; margin: 0; } .article { float: none; width: 100%; } }